home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 001 / piblist.arc / SCREENLO.PAS < prev    next >
Encoding:
Pascal/Delphi Source File  |  1985-03-24  |  3.5 KB  |  71 lines

  1. (*----------------------------------------------------------------------*)
  2. (*    Color_Screen_Active --- Determine if color or mono screen         *)
  3. (*----------------------------------------------------------------------*)
  4.  
  5. FUNCTION Color_Screen_Active : BOOLEAN;
  6.  
  7. (*----------------------------------------------------------------------*)
  8. (*                                                                      *)
  9. (*     Function:   Color_Screen_Active                                  *)
  10. (*                                                                      *)
  11. (*     Purpose:    Determines if color or mono screen active            *)
  12. (*                                                                      *)
  13. (*     Calling Sequence:                                                *)
  14. (*                                                                      *)
  15. (*        Color_Active := Color_Screen_Active : BOOLEAN;                *)
  16. (*                                                                      *)
  17. (*           Color_Active --- set to TRUE if the color screen is        *)
  18. (*                            active, FALSE if the mono screen is       *)
  19. (*                            active.                                   *)
  20. (*                                                                      *)
  21. (*     Calls:   INTR                                                    *)
  22. (*                                                                      *)
  23. (*----------------------------------------------------------------------*)
  24.  
  25. VAR
  26.    Regs : RECORD       (* 8088 registers *)
  27.              Ax, Bx, Cx, Dx, Bp, Si, Di, Ds, Es, Flags : INTEGER;
  28.           END;
  29.  
  30. BEGIN  (* Color_Screen_Active *)
  31.  
  32.    Regs.Ax := 15 SHL 8;
  33.  
  34.    INTR( $10 , Regs );
  35.  
  36.    Color_Screen_Active := ( Regs.Ax AND $FF ) <> 7;
  37.  
  38. END    (* Color_Screen_Active *);
  39.  
  40. (*----------------------------------------------------------------------*)
  41. (*        Get_Screen_Address --- Get address of current screen          *)
  42. (*----------------------------------------------------------------------*)
  43.  
  44. PROCEDURE Get_Screen_Address( VAR Actual_Screen : Screen_Ptr );
  45.  
  46. (*----------------------------------------------------------------------*)
  47. (*                                                                      *)
  48. (*     Procedure:  Get_Screen_Address                                   *)
  49. (*                                                                      *)
  50. (*     Purpose:    Gets screen address for current type of display      *)
  51. (*                                                                      *)
  52. (*     Calling Sequence:                                                *)
  53. (*                                                                      *)
  54. (*        Get_Screen_Address( Var Actual_Screen : Screen_Ptr );         *)
  55. (*                                                                      *)
  56. (*           Actual_Screen --- pointer whose value receives the         *)
  57. (*                             current screen address.                  *)
  58. (*                                                                      *)
  59. (*     Calls:   Color_Screen_Active                                     *)
  60. (*                                                                      *)
  61. (*----------------------------------------------------------------------*)
  62.  
  63. BEGIN  (* Get_Screen_Address *)
  64.  
  65.    IF Color_Screen_Active THEN
  66.       Actual_Screen := PTR( Color_Screen_Address , 0 )
  67.    ELSE
  68.       Actual_Screen := PTR( Mono_Screen_Address  , 0 );
  69.  
  70. END    (* Get_Screen_Address *);
  71.